/**
 * Create in 2012-7-27.
 */
package kit4j.tests.jdk.swing.dnd.component;

import javax.swing.Action;
import javax.swing.Icon;
import javax.swing.JButton;

import kit4j.view.cs.swing.dnd.JComponentDragDisplayActivator;

/**
 * 可进行拖放操作的按钮类型。
 * 
 * @author MiniKnife
 * 
 */
public class DragEnabledButton extends JButton {

	private static final long serialVersionUID = 1L;

	/**
	 * 创建一个按钮。
	 */
	public DragEnabledButton() {
		initDragEnabled();
	}

	/**
	 * 创建一个按钮。
	 * @param arg0
	 */
	public DragEnabledButton(Icon arg0) {
		super(arg0);
		initDragEnabled();
	}

	/**
	 * 创建一个按钮。
	 * @param arg0
	 */
	public DragEnabledButton(String arg0) {
		super(arg0);
		initDragEnabled();
	}

	/**
	 * 创建一个按钮。
	 * @param arg0
	 */
	public DragEnabledButton(Action arg0) {
		super(arg0);
		initDragEnabled();
	}

	/**
	 * 创建一个按钮。
	 * @param arg0
	 * @param arg1
	 */
	public DragEnabledButton(String arg0, Icon arg1) {
		super(arg0, arg1);
		initDragEnabled();
	}

	/**
	 * 初始化按钮的可拖放支持。
	 */
	public void initDragEnabled() {
		addMouseMotionListener(new JComponentDragDisplayActivator());
		setTransferHandler(new JButtonTransferHandler());
	}

}
